Wireless digital networks, such as networks operating under the current Electrical and Electronics Engineers (IEEE) 802.11 standards, are spreading in their popularity and availability. In a wireless local area network (WLAN) deployment, a number of clients can be connected to the same wireless network via one or more access points.
Frame aggregation generally refers to sending two or more data frames in a single transmission in order to increases throughput. Every frame transmitted by wireless device has a significant amount of overhead, including radio level headers, Media Access Control (MAC) frame fields, interframe spacing, and acknowledgment of transmitted frames. At the highest data rates, this overhead can consume more bandwidth than the payload data frame. To address this issue, the IEEE 802.11n standard defines two types of frame aggregation: (1) Media Access Control (MAC) Service Data Unit (MSDU) aggregation, and (2) MAC Protocol Data Unit (MPDU) aggregation. Both types group several data frames into one large frame. Because management information needs to be specified only once per frame, the ratio of payload data to the total volume of data is higher, allowing higher throughput.
More specifically, Aggregated MAC Protocol Data Unit (A-MPDU) generally refers to frame aggregations performed below the MAC layer where multiple frames associated with a single source and a single destination are aggregated and transmitted consecutively. By contrast, Aggregated MAC Service Data Unit (A-MSDU) generally refers to frame aggregations performed above the MAC layer where multiple frames associated with a common destination is aggregated into and transmitted as a single frame.
However, queuing frames for aggregation (A-MPDU and/or A-MSDU) impacts latency. A frame aggregation logic may determine whether to aggregate a frame based on a number of inputs, such as a timeout value, a number of frames, a frame length, etc. For example, a frame aggregation logic can wait for a pre-determined period of time after receiving a packet, e.g., 10 nanoseconds, prior to determining whether to queue the received packet to be sent later as an aggregated frame or send the packet out as a separate frame. Moreover, a frame aggregation logic can aggregate queued frames when a threshold number of frames is reached in the queue. Finally, a frame aggregation logic can aggregate queued frames when the combined length of queued frames exceeds a threshold value.
However, such use of fixed inputs by the frame aggregation (A-MPDU and/or A-MSDU) logic is not optimal under certain circumstances. For example, assuming that incoming packets are received at 10 nanoseconds interval, and that the frame aggregation logic has a predetermined timeout value of 10 nanoseconds. Thus, each incoming packet will be held for 10 nanoseconds and transmitted before the next packet is received. Hence, transmission of every packet will be delayed by 10 nanoseconds in this case.
As another example, in a Transmission Control Protocol (TCP) session even when a packet is flagged as the last packet in the TCP session, and therefore no more packets are anticipated, the frame aggregation logic configured with fixed inputs will still hold the packet for a predetermined timeout value, instead of transmitting the packet immediately after receipt.
Furthermore, conventional frame aggregation logic does not work well in a lossy network environment. The frame aggregation operation will generate frames with relatively large frame size. If an aggregated frame (e.g., an A-MSDU packet) is lost in transmission, all of the packets in the aggregated frame would have to be retransmitted. In a lossy environment where there may be a short time interferer producing signal interference at a fixed interval, e.g., every 10 nanoseconds, the likelihood of the aggregated frame being lost in transmission due to the interference would be increased, because it will take longer time for the aggregated frame to complete transmission than it will take for each individual packet.